/*
设计思路：
估算在给定的 n 个人中，至少有两人共享同一生日日期的概率。
函数的核心逻辑基于一个被称为“生日悖论”的概率论问题。
函数首先设定一年中的总天数（不考虑闰年），然后通过循环迭代计算每个人在不重复先前生日的前提下，拥有独特生日的概率。
在每次迭代中，可用生日日期数减少，同时更新无重复生日的累积概率。
最终，通过从1减去这个累积概率，得到至少有两人生日相同的概率。

*/

pub fn new_birthday_probability(n: u32) -> f64 {
    // TODO: 这里写逻辑
    // todo!()

    // 设定一年的总天数。
    let total_days = 365;
    // 总概率
    let mut probability = 1.0;

    // 计算生日不重复的情况下的概率
    for i in 0..n {
        probability *= (total_days - i) as f64 / total_days as f64;
    }

    // 得到目标概率
    1.0 - probability
}
